package com.haotian.dataconvert;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 数据传输对象
 * 
 * @author 张朋
 * @email 494009061@qq.com
 * @param <K>
 * @param <V>
 */
@SuppressWarnings("rawtypes")
public interface Dto<K, V> extends Map<K, V> {

	/**
	 * Converts this class to JSONString
	 * @return
	 */
	public String toJSONString();
	
	/**
	 * 以String类型取出
	 * 
	 * @param key
	 * @return String
	 */
	public String getAsString(K key);
	
	
	/**
	 * 以String类型取出
	 * 
	 * @param key
	 * @return String
	 */
	
	public List getAsList(K key);

	/**
	 * 以Integer类型取出
	 * 
	 * @param key
	 * @return Integer
	 */
	public Integer getAsInteger(K key);

	/**
	 * 以Double类型取出
	 * 
	 * @param key
	 * @return Double
	 */
	public Double getAsDouble(K key);

	/**
	 * 以Boolean类型取出
	 * 
	 * @param key
	 * @return Boolean
	 */
	public Boolean getAsBoolean(K key);

	/**
	 * 以Date类型取出
	 * 
	 * @param key
	 * @return Date
	 */
	public Date getAsDate(K key);

	/**
	 * 以带格式 String 类型取出 时间字符串
	 * @param key
	 * @param format
	 * @return String
	 */
	public String getAsDate(K key, String format);

	/**
	 * 转json字符串
	 * 
	 * @param key
	 * @return String
	 */
	public String getAsJsonString(K key);
	
	
	/**
	 * 转json字符串 并格式化时间
	 * 
	 * @param key
	 * @return String
	 */
	public String getAsJsonString(K key,String fromat );
	
}
